package es.tikitaka.dao;

import java.util.List;

import es.tikitaka.domain.Temporada;
import es.tikitaka.domain.jugador.Jugador;
import es.tikitaka.domain.jugador.PartJugador;

/**
 * 
 * @author Saúl Domínguez
 * @since 2010
 * @category PFC
 */

public interface PartJugadorService {

	/**
	 * Método para listar todas las participaciones de jugadores en el sistema
	 * 
	 * @return lista de participaciones
	 */
	List<PartJugador> getList();

	/**
	 * Método para listar todas las participaciones de un jugador a lo largo de
	 * su trayectoria
	 * 
	 * @param jugador
	 *            Jugador al que pertenecen las participaciones
	 * @return lista de participaciones del jugador
	 */
	List<PartJugador> getParticipaciones(Jugador jugador);

	/**
	 * Método para listar todas las participaciones de jugadores coincidentes
	 * con unos criterios de búsqueda
	 * 
	 * @param buscar
	 *            Cadena a buscar
	 * @param en
	 *            atributo donde buscar
	 * @param temporada
	 *            Temporada para la que buscar
	 * @return lista de participaciones de jugadores coincidentes con los
	 *         criterios
	 */
	List<PartJugador> buscarParticipacionesTemporada(String buscar, int en,
			Temporada temporada);

	/**
	 * Método para eliminar del sistema un participación de jugador dada
	 * 
	 * @param id
	 *            Id de la participación de jugador a eliminar
	 * @return estado del proceso (true or false)
	 */
	boolean delete(Integer id);

	/**
	 * Método para guardar una participación de jugador en el sistema o las
	 * modificaciones sufridas por una participación ya existente
	 * 
	 * @param participacion
	 *            Participación de jugador a guardar
	 * @return estado el proceso (true or false)
	 */
	boolean save(PartJugador participacion);
}
